package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.dto.TeachplanMediaDTO;
import com.xuecheng.api.content.model.vo.BindTeachplanMediaVO;
import com.xuecheng.api.content.model.vo.TeachplanVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

@Api(value = "课程计划信息管理")
public interface TeachPlanApi {

    @ApiOperation(value = "根据课程id查询课程计划树型结构(树型结构为三级目录)")
    @ApiImplicitParam(name = "courseBaseId", value = "课程id", required = true, dataType = "Long", paramType = "path", example = "1")
    TeachplanDTO queryTreeNodesByCourseBaseId(Long courseBaseId);


    @ApiOperation(value = "添加或修改课程计划")
    @ApiImplicitParam(name = "dto", value = "前端传递的转化对象", required = true, dataType = "Long", paramType = "path", example = "1")
    TeachplanDTO createOrmodifyTeachplan(TeachplanVO vo);

    @ApiOperation(value = "根据课程计划id删除课程计划")
    @ApiImplicitParam(name = "teachplanId", value = "课程计划id", required = true, dataType = "Long", paramType = "path", example = "1")
    void removeTeachplan(Long teachplanId);


    @ApiOperation("课程计划绑定媒资信息")
    @ApiImplicitParam(name = "vo",
            value = "课程计划绑定媒资信息VO", required = true,
            dataType = "BindTeachplanMediaVO", paramType = "body")
    TeachplanMediaDTO associateMedia(BindTeachplanMediaVO vo);


}
